﻿using Dlls;
using Persistencia;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using UI.Views.Consultas;
using Servicos;
using DexGerencial;

namespace UI.Views.Cadastros
{
    /// <summary>
    /// Interaction logic for frmCadastraClasseFinanceira.xaml
    /// </summary>
    public partial class frmCadastraClasseFinanceira : Window
    {
        private ClasseFinanceiraDLL classeDLL;
        private ClasseFinanceira classeFinanceira;
        private string codigoParaAlterarOuDeletar = "";

        public frmCadastraClasseFinanceira(int codigo)
        {
            InitializeComponent();
            classeDLL = new ClasseFinanceiraDLL();
            classeFinanceira = new ClasseFinanceira();
            
        }


        private void InsertOrUpdate(object sender, RoutedEventArgs e)
        {
            try
            {
                if (codigoParaAlterarOuDeletar == "")
                {
                if (rbTitulo.IsChecked == true)
                {
                    classeFinanceira.TipoClasse = Convert.ToChar("T");
                }
                else if (rbTitulo.IsChecked == true)
                {
                    classeFinanceira.TipoClasse = Convert.ToChar("L");
                }
                classeFinanceira.Financeiro = checkFinanceiro.IsChecked;
                classeFinanceira.Resultado = checkResultado.IsChecked;
                classeFinanceira.NomeClasse = txtNomeClasse.Text.ToString();
                classeFinanceira.Codigo = txtCodigo.Text;
                classeFinanceira.NomeClasse = txtNomeClasse.Text;
                classeDLL.Insert(classeFinanceira);
                ValidaCampos();
                MessageBox.Show("Classe adicionada com sucesso.");
                LimparCampos();
                }
                else
                {
                    classeFinanceira.NomeClasse = txtNomeClasse.Text.ToString();
                    classeFinanceira.Codigo = txtCodigo.Text;
                    classeFinanceira.NomeClasse = txtNomeClasse.Text;
                    classeFinanceira.Financeiro = checkFinanceiro.IsChecked;
                    classeFinanceira.Resultado = checkResultado.IsChecked;
                    if (rbLancamento.IsChecked == true)
                    {
                        classeFinanceira.TipoClasse = Convert.ToChar("L");
                    }
                    else if (rbTitulo.IsChecked == true)
                    {
                       classeFinanceira.TipoClasse = Convert.ToChar("T"); 
                    }
                    classeDLL.Update(codigoParaAlterarOuDeletar, classeFinanceira);
                    ValidaCampos();
                    MessageBox.Show("Classe alterada com sucesso.");
                    LimparCampos();
                }
                classeFinanceira = new ClasseFinanceira();

            }
            catch (Exception)
            {
                MessageBox.Show("O registro não foi incluso/alterado , favor verificar os campos de prenchimento obrigatório ");
            }
            
        }

        private void EditarClasseFinanceira(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Enter)
            {
                if (txtCodigo.Text.ToString() != "")
                {
                    codigoParaAlterarOuDeletar = txtCodigo.Text.ToString();
                    if (codigoParaAlterarOuDeletar != "")
                    {
                        ClasseFinanceira classeFinanceira = classeDLL.getClasse(codigoParaAlterarOuDeletar);

                        if (classeFinanceira != null)
                        {
                            if (classeFinanceira.TipoClasse=='T')
                            {
                                rbTitulo.IsChecked = true;
                            }
                            else if (classeFinanceira.TipoClasse == 'L')
                            {
                                rbLancamento.IsChecked = true;
                            }
                            checkFinanceiro.IsChecked = classeFinanceira.Financeiro ;
                            checkResultado.IsChecked = classeFinanceira.Resultado;
                            txtCodigo.Text = classeFinanceira.Codigo;
                            txtNomeClasse.Text = classeFinanceira.NomeClasse;

                        }
                        else
                        {
                            MessageBox.Show("Classe Financeira não encontrada.");
                        }
                    }
                }
                else
                {
                    frmConsultaPadrao consultaPadrao = new frmConsultaPadrao("Classe Financeira");
                    consultaPadrao.Owner = this;
                    consultaPadrao.Show();
                }
            }

        }

        private void Novo(object sender, RoutedEventArgs e) 
        {
            LimparCampos();
        }

        private void LimparCampos()
        {
            rbTitulo.IsChecked = false;
            rbLancamento.IsChecked = false;
            checkFinanceiro.IsChecked = false;
            checkResultado.IsChecked = false;
            txtCodigo.Text = "";
            txtNomeClasse.Text = "";
        }

        private void Delete(object sender, RoutedEventArgs e) 
        { 
        
        }
        private bool ValidaCampos()
        {
            bool valido = false;
            if (txtCodigo.Text =="")
            {
                MessageBox.Show("O campo Código não pode ficar em branco");
            
            }
            return valido;
        }
    }
}
        



